<?php

namespace app\base\controller;

class BaseController extends \variant\core\Controller {

    protected $pager;

    public function __construct() {
        //引入当前模块配置
        $config = load_config('config');
        if (!empty($config)) {
            foreach ((array)$config as $key => $value) {
                config($key, $value);
            }
        }
        //判断模块是否开启
        if (!config('APP_SYSTEM')) {
            if (1 != config('APP_STATE') || 1 != config('APP_INSTALL')) {
                $this->error('该应用尚未开启!', false);
            }
        }
    }

    /**
     * 获取渲染html
     */
    public function show($html = null) {
        $this->display($html, false, false);
    }

    /**
     * 错误提示方法
     */
    public function error($msg, $url = null) {
        if (IS_AJAX) {
            $array = array(
                'info' => $msg,
                'status' => false,
                'url' => $url,
            );
            $this->ajaxReturn($array);
        } else {
            $this->alert($msg, $url);
        }
    }

    /**
     * 成功提示方法
     */
    public function success($msg, $url = null) {
        if (IS_AJAX) {
            $array = array(
                'info' => $msg,
                'status' => true,
                'url' => $url,
            );
            $this->ajaxReturn($array);
        } else {
            $this->alert($msg, $url);
        }
    }

    /**
     * AJAX返回
     * @param array $data 数组
     * @return json
     */
    public function ajaxReturn($data) {
        header('Content-type:text/json');
        echo json_encode($data);
        exit;
    }

    /**
     * 页面不存在
     * @return array 页面信息
     */
    protected function error404() {
        throw new \Exception("404页面不存在！", 404);
    }

    /**
     * 生成分页URL
     * @return array 分页数组
     */
    protected function createPageUrl($paramer = array(), $page = 1) {
        $paramer = array_filter($paramer);
        $paramer = array_flip(array_flip($paramer));
        $paramer['page'] = $page;
        $str = APP_NAME . '/' . CONTROLLER_NAME . '/' . ACTION_NAME;
        return url($str, $paramer);
    }

    /**
     * 设置分页参数
     * @param $name 参数名
     * @param $value 参数值
     */
    protected function setPageConfig($name, $value) {
        $this->pager->set($name, $value);
    }
}